package org.htw.osgi.renderservice.essentials;

import java.awt.Graphics2D;
import javax.servlet.ServletRequest;

/**
 * <b>Interface für ein Kontext-Objekt des RenderService. Es stellt den Interceptoren
 * den Zugriff auf das Framework über {@link IRenderServiceContext#getRenderService()}
 * bereit und reicht den Graphics-Kontext weiter der durch die Interceptoren
 * bearbeitet wird. Desweiteren stellt alle Informationen des eingegangenen
 * HttpRequest im RenderService Servlet bereit.</b>
 * 
 * @author  Benjamin Friedrich (<a href="mailto:benjamin_friedrich@gmx.de">mailto:benjamin_friedrich@gmx.de</a>)
 * @version 1.0  Juni 2009
 */
public interface IRenderServiceContext 
extends          ServletRequest
{
	/**
	 * Setzt Framework im Kontext-Objekt auf welches die Interceptoren
	 * bei Bedarf zugreifen können um z.B. einen Fehler zu melden.
	 * 
	 * @param service Service
	 */
	abstract public void setRenderService(IServiceFramework service);
	
	/**
	 * Übergibt Graphics-Kontext an Kontext-Objekt, welches die Interceptoren
	 * jeweils bearbeiten sollen.
	 * 
	 * @param g Graphics-Kontext
	 */
	abstract public void setGraphics(Graphics2D g);
	
	/**
	 * Ermöglicht Zugriff auf das Framework von dem dieses Kontext-Objekt
	 * übergeben wurde.
	 * 
	 * @return  Framework
	 */
	abstract public IServiceFramework getRenderService();
	
	/**
	 * Liefert den zu bearbeitenden Grahics-Kontext.
	 * 
	 * @return zu bearbeitender Graphics-Kontext
	 */
	abstract public Graphics2D getGraphics();
}